在登入頁面設置了一個忘記密碼的按鈕,在官方文件中就有提到這部分要如何下指令,結合先前頁面的經驗,在跟著文件寫就沒問題啦!!
傳一個email
到sendPasswordResetEmail
裡面,在按送出鈕後系統會自動寄送一封重置密碼的信件,點擊信件連結就會導到修改密碼的位置。
firebase.auth().sendPasswordResetEmail(email)
.then(() => {
// Password reset email sent!
// ..
})
.catch((error) => {
var errorCode = error.code;
var errorMessage = error.message;
// ..
});
今天唯一的一個小問題是 — 忘記密碼似乎只有一種errorCode ,若不填寫或是填寫到錯誤格式的信箱時,錯誤會顯示auth/missing-email
,使用正確格式但沒有註冊過的信箱時,他會成功記送出去,這部分應該要有一個尚未註冊的errorCode
才對,目前沒有在這個頁面找到可能的errorCode
,網路上寫忘記密碼頁面的很少看到使用errorCode
的範例 ,這個問題先擱置,後面再來優化他!
以下是今天的改寫之後的code
function onSubmit(){
firebase.auth().sendPasswordResetEmail(email)
.then(() => {
alert('請至信箱收件重置密碼')
})
.catch((error) => {
var errorCode = error.code;
console.log(errorCode)
switch(errorCode){
case 'auth/missing-email':
setEmailErrorMessage('請輸入正確信箱');
break;
}
});
}